package com.example.volunteer.service;

import com.example.volunteer.model.Apply;
import com.example.volunteer.util.PageResult;
import org.springframework.stereotype.Service;

import java.util.Date;
import java.util.List;
@Service
public interface ApplyService {
    void applyActivity(Integer activityId, String volunteerId);
    void approveApplication(Integer activityId, String volunteerId);
    void rejectApplication(Integer activityId, String volunteerId);
    boolean checkActivityLimit(String volunteerId);
    void update(Apply apply);
    void deleteApplication(Integer activityId, String volunteerId);

    String generateQRContent(Integer activityId, String volunteerId);

    PageResult<Apply> findAppliesWithPage(int pageNum, int pageSize);

    PageResult<Apply> getApplicationsByVolunteerWithPage(String volunteerId, int pageNum, int pageSize);

    PageResult<Apply> getApplicationsByActivityWithPage(Integer activityId, int pageNum, int pageSize);

    PageResult<Apply> getApplicationsByStatusWithPage(String status, int pageNum, int pageSize);

    PageResult<Apply> getApplicationByTimeWithPage(Date time, int pageNum, int pageSize);
}
